# -*- Mode: makefile -*-
#
# AArch64 specific tweaks

ARM_SRC=$(SRC_PATH)/tests/tcg/arm
VPATH 		+= $(ARM_SRC)

AARCH64_SRC=$(SRC_PATH)/tests/tcg/aarch64
VPATH 		+= $(AARCH64_SRC)

# Float-convert Tests
AARCH64_TESTS=fcvt

fcvt: LDFLAGS+=-lm

run-fcvt: fcvt
	$(call run-test,$<,$(QEMU) $<, "$< on $(TARGET_NAME)")
	$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)

# Pauth Tests
AARCH64_TESTS += pauth-1 pauth-2 pauth-4
run-pauth-%: QEMU_OPTS += -cpu max
pauth-%: CFLAGS += -march=armv8.3-a

# Semihosting smoke test for linux-user
AARCH64_TESTS += semihosting
run-semihosting: semihosting
	$(call run-test,$<,$(QEMU) $< 2> $<.err, "$< on $(TARGET_NAME)")

run-plugin-semihosting-with-%:
	$(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
		-plugin $(PLUGIN_DIR)/$(call extract-plugin,$@) \
		 $(call strip-plugin,$<) 2> $<.err, \
		"$< on $(TARGET_NAME) with $*")

AARCH64_TESTS += semiconsole
run-semiconsole: semiconsole
	$(call skip-test, $<, "MANUAL ONLY")

run-plugin-semiconsole-with-%:
	$(call skip-test, $<, "MANUAL ONLY")

TESTS += $(AARCH64_TESTS)
